// 最多发送多少个群
var postGroupNum = 6;
// 最多选多少个收藏
var maxSelectedCollect = 1;

// 打开微信
app.launch("com.tencent.mm");

// 进去我的
className("android.widget.TextView").text("我").findOne(10000).parent().parent().click();

// 找到微信我的收藏
sleep(1000);

className("android.widget.TextView").text("收藏").findOne(10000).
    parent().parent().parent().parent().parent().parent().parent().parent().click();

// 找到我需要转发的图片
sleep(1000);

// 找到我的所有收藏
var collectElement = className("android.widget.Button").text("图片与视频").findOne().parent().parent().parent().parent().children();

// 找到最上面5条收藏
var collectElementList = collectElement.filter((element, index) => {
    return index >= 3 && index < 3 + maxSelectedCollect;
});

// 点击第一个收藏，打开多选更多面板
collectElementList[0].longClick();

sleep(200);

// 打开收藏多选按钮
className("android.widget.TextView").text("更多").findOne().click();

//所有的多选都选中
collectElementList.forEach((element, index) => {
    if (index !== 0) {
        sleep(1000);
        element.click();
    }
});

// 点击收藏分享按钮
sleep(500);
className("android.widget.ImageButton").desc("转发").click();

// 打开多选
sleep(500);
className("android.widget.Button").text("多选").click();

console.log("打开从通讯录选择");
// 打开从通讯录选择
sleep(500);
className("android.widget.TextView").text("最近聊天").findOne().parent().children().get(1).click();

// 选择群聊
sleep(500);
className("android.widget.TextView").text("选择群聊").findOne().parent().click();

sleep(1000);

// 滚动到最后一个群
function scrollToButton(lastGroupName) {
    if (lastGroupName) {

        // 群列表容器
        var groupView = className("android.widget.TextView").text("选择群聊").findOne().parent().parent().parent().parent().parent().parent().parent().children()
            .get(1).children().get(0).children().get(0).children().get(1).children().get(0).children().get(0).children().get(0);

        // 群聊列表
        var groupList = groupView.children();
        // 没有群直接退出结束脚本
        if (groupList.length === 0) {
            // todo 脚本自动结束
            engines.stopAll();
        }

        // 找到最后一个群聊
        var group = groupList[groupList.length - 1];

        // 找到群名称
        var groupName = group.children().get(1).text();
        // 等待半秒钟
        sleep(500);

        // 证明不是滚动到最底部
        if (lastGroupName !== groupName) {
            // 下滚动到底
            groupView.scrollTo(200, 200); // 滚动到(100, 200)位置
            sleep(2000);
            // scrollToButton(groupName);
        }
    }
}

console.log("开始滚动到底部");
// 滚动到底部
scrollToButton("开始");

sleep(2000);

function selectedGroup() {

    // 群列表容器
    var groupView = className("android.widget.TextView").text("选择群聊").findOne().parent().parent().parent().parent().parent().parent().parent().children()
        .get(1).children().get(0).children().get(0).children().get(0).children().get(0).children().get(0).children().get(0);
        
    // 群聊列表
    var groupList = groupView.children();

    // 过滤不发送的群并且倒叙数组
    var filterGroupList = groupList.filter((group, index) => {
        var groupName = group.children().get(2).children().get(0).children().get(0).text();
        return !groupName.includes("专业群") && !groupName.includes("预备群") && !groupName.includes("无广告");
    }).reverse();

    if (filterGroupList.length === 0) {
        // todo 脚本自动结束
        engines.stopAll();
    }

    // 选中要发送的群
    for (var i = 0; i < postGroupNum; i++) {
        if (filterGroupList[i]) {
            sleep(200);
            filterGroupList[i].click();
        }
    }

}

// 选中群
selectedGroup();

// 确定选中群
sleep(500);
className("android.widget.Button").textStartsWith("确定").findOne().click();

// 完成选中
sleep(500);
className("android.widget.Button").textStartsWith("完成").findOne().click();

// 发送消息
sleep(500);
className("android.widget.Button").textStartsWith("发送").findOne().click();

// 确认发送
sleep(500);
className("android.widget.Button").text("发送").findOne().click();

sleep(2000);

className("android.widget.TextView").text("我的收藏").findOne().parent().parent().parent().parent().children().get(1).click();
